This invention relates to a method and system for recreating a user interface of an existing application screen into a graphical user interface having the same functionality of the original user interface. More specifically, the invention relates to a method and system of transforming a program-centric control of a screen into an event-centric graphical user interface capable of use on newer systems and platforms as well as in connection with the original system.
In the above referenced copending application there has been described a method and system for extracting business rules in sections of legacy code, such as COBOL programs, as a self contained routine, and translating such routines into more modern systems and platforms such as Java, C++ and even as an HTML page or new COBOL system.
While extraction of such business rules has been described, a further problem arising in legacy applications, such as COBOL, PLI and C, is that they provide a user interface to a user which is program-centric as opposed to event-based modern day graphical interfaces. More particularly, older main frame systems contain buried within the program code, descriptions of screens, but there is no notion of what to do within the screen as is done with modern graphical user interfaces with pointing devices. Previously, such program-centric interface control was done because typically xe2x80x9cdumb terminalsxe2x80x9d were used.
Modern process and graphical user interfaces revolve around events on a screen. Thus, a Windows(trademark) type system provides a number of images such as icons, menus, etc. and to accomplish an event in the system, the user might xe2x80x9cleft clickxe2x80x9d on a mouse when the pointer or arrow is superimposed on an icon on the graphical user interface screen. Thus, such modem systems are event driven on how to interact with the screen and not xe2x80x9cprogram-centricxe2x80x9d as are the older legacy applications.
For the purposes of this disclosure, it is noted that by the term xe2x80x9cuser interfacexe2x80x9d is meant the screen-bound portion of a computing system that provides for interactions (input/output) between the computing system and its user. There are two major properties of the user interface. A first property is the visual layout and content, and the second property is the interface behavior. Visual layout and content defines the xe2x80x9clook and feelxe2x80x9d of the user interface such as colors, field screen positions, fonts, etc., as well as, the information content of the interface. Interface behavior defines how the system acts upon user request (events) with regard to its interaction with the underlying applications program, as well as the screen to screen transitions.
It is acknowledged that there is a great deal of business knowledge locked into a user interface of the legacy system. It becomes important to leverage this knowledge in moving forward to the new generation of the Irternet/Intranet and Client/Server based systems by extracting all user events relating to legacy application screens, for example, CICS/BMS, IMS/MFS, and AS400 Forms, that can be transformed into modern solutions such as Visual Basic, HTML, Java, and C++.
In accordance with one aspect of the method of the invention, a user interface is recreated from an existing application screen into a graphical user interface having the same functionality of the original user interface. This is done by matching the structure of data in a user interface of an existing application to a pattern of data structure in the application which communicates with the screen. The portion of the existing program which communicates with each screen of the user interface of the existing application are detected, and correspondence between fields of a specific screen and the portion of the program which communicates with a specific screen is detected. Thereafter, for each screen field, statements where the screen is compared with other fields and literal values are detected, and all of the detected information is displayed for determining therefrom which fields represent events. For each event, the type of graphical interface control to be used is specified along with the text appearing on the graphical user interface for each control specified and the result of the event. The applications user interface is then regenerated as a graphical user interface.
In more specific aspects in accordance with the method, the graphical user interface control specified can be a push button, a menu, or a function key. The result of the event specified can be the transition to another screen, performing of a routine while the screen remains the same, or unloading of the screen. The regeneration of the screen of the user interface can be done, for example, in more modern environments such as a Visual Basic environment, HTML, Java or C++.
In accordance with another aspect of the invention, there is provided a system for recreating a user interface of an existing application screen into a graphical user interface having the same functionality of the original user interface. The system includes components such as programs and computer system portions for effecting the various steps discussed in connection with the method described herein.